클라이언트의 모든 거래 요청을 수신하는 관문입니다.
transact 모듈은 이 모든 요청을 처리하고, 약속된 형식으로 결과를 반환하는 핵심적인 역할을 수행합니다.
transact
transact는 거래 계약의 CommandType 값을 보고 실행 모듈을 선택합니다.
CommandType
D
dbclient
G
graphclient
F
function
C
command
P
prompter
외부 시스템 연동도 기능 성격에 따라 function, command, prompter 중 적절한 모듈로 분리합니다.
단일 건 (Row) 응답
GET /api/products/1
{}
{ "id": 1, "name": "노트북", "price": 1500000 }
여러 건 (List) 응답
GET /api/products
[]
[ { "id": 1, ... }, { "id": 2, ... } ]
Form 데이터 (입력)
POST
PUT
Grid 데이터 (출력)
HandStack은 이러한 표준 RESTful 형식을 기본으로 지원하여, 백엔드와 프론트엔드의 협업을 매우 효율적으로 만듭니다.
Postman 또는 Thunder Client를 사용해 API에 요청을 보내봅니다.
클라이언트 코드에서 데이터가 어떻게 사용되는지 확인합니다.
v-for
API 유효성 검사는 마치 물건을 배송하기 전에 내용물을 검사하는 것과 같아요. 깨지거나 잘못된 물건을 보내지 않기 위함이죠. DB에 저장하기 전에 데이터를 한 번 더 확인하는 과정입니다.
클라이언트(브라우저) 검증은 쉽게 우회될 수 있습니다.
악의적인 사용자가 조작된 데이터를 직접 API로 전송할 수 있습니다.
클라이언트 코드의 버그로 인해 잘못된 데이터가 전송될 수 있습니다.
HandStack의 유효성 검사
class-validator
DataAnnotations
모델(DTO)에 유효성 검사 규칙을 추가합니다.
Product
name
@IsNotEmpty()
price
Postman으로 유효하지 않은 데이터를 전송해봅니다.
서버의 응답을 확인합니다.
400 Bad Request
API는 마치 통역사와 같아요. 올바른 메시지뿐만 아니라, 문제가 생겼을 때 '나 이런 문제가 생겼어!'라고 올바르게 알려주는 것도 중요하죠. HTTP 상태 코드가 바로 그 에러 메시지의 종류를 나타냅니다.
2xx (성공)
2xx
200 OK
201 Created
204 No Content
4xx (클라이언트 오류)
4xx
401 Unauthorized
403 Forbidden
404 Not Found
5xx (서버 오류)
5xx
500 Internal Server Error
Postman으로 다양한 에러 상황을 시뮬레이션 해봅니다.
404 Not Found 확인
GET /api/products/9999
400 Bad Request 확인
500 Internal Server Error 확인
BaseFieldMappings
Pretreatment
$Variable
URL 주소 뒤에 ?를 붙여 key=value 형태로 데이터를 전달하는 방법입니다. 주로 데이터 목록을 조회(GET)할 때 정렬, 필터링, 페이징 등의 조건을 전달하는 데 사용됩니다.
?
key=value
GET
GET /api/products?category=electronics&minPrice=100
category
electronics
minPrice
100
HandStack은 쿼리 파라미터를 SQL 조건으로 자동 매핑하는 강력한 기능을 제공합니다.
백엔드에서 쿼리 파라미터를 처리하는 로직을 추가합니다.
WHERE name LIKE ...
Postman으로 쿼리 파라미터를 포함한 요청을 보냅니다.
GET /api/products?name=노트북
GET /api/products?category=가전
응답 결과가 쿼리 파라미터 조건에 맞게 필터링되는지 확인합니다.
HandStack을 사용하면 복잡한 SQL 쿼리를 직접 작성할 필요 없이, 간단한 설정만으로 강력한 검색 기능을 쉽게 구현할 수 있습니다.